package cn.wolfcode.ssm.page;

import lombok.Getter;

import java.util.ArrayList;
import java.util.List;

@Getter
public class PageResult<T> {

    // 两个用户出入的数据
    private int currentPage = 1;  // 跳转到第几页数
    private int pageSize = 3;  // 每页显示几条数据

    // 两个Sql语句执行返回的结果
    private int totalcount; // 表中总的数据条数
    private List<T> result; // 结果集

    // 三个需要计算得出的结果
    private int totalPage; // 总页数
    private int prevPage; // 上一页
    private int nextPage; //下一页

    // 当表中有数据时候使用的构造器
    public PageResult(int currentPage, int pageSize, int totalcount, List<T> result) {
        this.currentPage = currentPage;
        this.pageSize = pageSize;
        this.totalcount = totalcount;
        this.result = result;

        totalPage = totalcount % pageSize == 0 ?  totalcount / pageSize : totalcount / pageSize + 1;
        prevPage = currentPage - 1 >= 1 ? currentPage - 1 : 1 ;
        nextPage = currentPage + 1 <= this.totalPage ? currentPage + 1 : this.totalPage;

    }

    // 当表中没有数据时候使用的构造器
    public PageResult(int currentPage,int pageSize){
        this(currentPage, pageSize , 1,new ArrayList());
    }
}